﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class ПодключаемоеОборудованиеАтолДисплеиПокупателя
	{
		///////////////////////////////////////////////////////////////////////////////
		// ПРОГРАММНЫЙ ИНТЕРФЕЙС
		// Функция осуществляет подключение устройства.
		//
		// Параметры:
		//  ОбъектДрайвера   - <*>
		//           - ОбъектДрайвера драйвера торгового оборудования.
		//
		// Возвращаемое значение:
		//  <Булево> - Результат работы функции.
		//

		public object ПодключитьУстройство(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			//ВыходныеПараметры = Новый Массив();
			//ПараметрыПодключения.Вставить("ИДУстройства", "");
			/*// Проверка настроенных параметров
*/
			//Порт              = Неопределено;
			//Скорость          = Неопределено;
			//Четность          = Неопределено;
			//БитыДанных        = Неопределено;
			//СтопБиты          = Неопределено;
			//Кодировка         = Неопределено;
			//ЗагружатьШрифты   = Неопределено;
			//Модель            = Неопределено;
			//РазмерДисплея	  = Неопределено;
			//Параметры.Свойство("Порт",              Порт);
			//Параметры.Свойство("Скорость",          Скорость);
			//Параметры.Свойство("Четность",          Четность);
			//Параметры.Свойство("БитыДанных",        БитыДанных);
			//Параметры.Свойство("СтопБиты",          СтопБиты);
			//Параметры.Свойство("Кодировка",         Кодировка);
			//Параметры.Свойство("ЗагружатьШрифты",   ЗагружатьШрифты);
			//Параметры.Свойство("Модель", 			Модель);
			//Параметры.Свойство("РазмерДисплея",		РазмерДисплея);
			if(true/*Порт              = Неопределено
	 Или Скорость          = Неопределено
	 Или Четность          = Неопределено
	 Или БитыДанных        = Неопределено
	 Или СтопБиты          = Неопределено
	 Или Кодировка         = Неопределено
	 Или ЗагружатьШрифты   = Неопределено
	 Или Модель            = Неопределено*/)
			{
				//ВыходныеПараметры.Добавить(999);
				/*ВыходныеПараметры.Добавить(НСтр("ru='Не настроены параметры устройства.
		|Для корректной работы устройства необходимо задать параметры его работы.
		|Сделать это можно при помощи формы ""Настройка параметров"" модели
		|подключаемого оборудования в форме ""Подключение и настройка оборудования"".'"));*/
				//Результат = Ложь;
			}
			if(true/*Результат*/)
			{
				//ОбъектДрайвера.ДобавитьУстройство();
				if(true/*ОбъектДрайвера.Результат = 0*/)
				{
					//ПараметрыПодключения.ИДУстройства = ОбъектДрайвера.НомерТекущегоУстройства;
					//ОбъектДрайвера.НаименованиеТекущегоУстройства = Параметры.Модель;
					//ОбъектДрайвера.Модель                         = ПолучитьКодПротокола(Параметры.Модель);
					//ОбъектДрайвера.БитыДанных                     = Параметры.БитыДанных;
					//ОбъектДрайвера.ЗагружатьШрифты                = Параметры.ЗагружатьШрифты;
					//ОбъектДрайвера.НомерПорта                     = Параметры.Порт;
					//ОбъектДрайвера.СкоростьОбмена                 = Параметры.Скорость;
					//ОбъектДрайвера.СтопБиты                       = Параметры.СтопБиты;
					//ОбъектДрайвера.Четность                       = Параметры.Четность;
					//ОбъектДрайвера.НаборСимволов                  = Параметры.Кодировка;
					//ОбъектДрайвера.УстройствоВключено = 1;
					if(true/*ОбъектДрайвера.Результат <> 0*/)
					{
						//ВыходныеПараметры.Добавить(999);
						//ВыходныеПараметры.Добавить(ОбъектДрайвера.ОписаниеРезультата);
						//Результат = Ложь;
						//ОбъектДрайвера.УдалитьУстройство();
						//ПараметрыПодключения.ИДУстройства = Неопределено;
					}
				}
				if(true/*Результат*/)
				{
					//ОбъектДрайвера.УстройствоВключено = 1;
					if(true/*ОбъектДрайвера.Результат <> 0*/)
					{
						//ВыходныеПараметры.Добавить(999);
						//ВыходныеПараметры.Добавить(ОбъектДрайвера.ОписаниеРезультата);
						//Результат = Ложь;
						//ОбъектДрайвера.УстройствоВключено = 0;
						//ОбъектДрайвера.УдалитьУстройство();
					}
				}
			}
			return null;
		}
		// Функция осуществляет отключение устройства.
		//
		// Параметры:
		//  ОбъектДрайвера - <*>
		//         - ОбъектДрайвера драйвера торгового оборудования.
		//
		// Возвращаемое значение:
		//  <Булево> - Результат работы функции.
		//

		public object ОтключитьУстройство(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			//ВыходныеПараметры = Новый Массив();
			//ОбъектДрайвера.НомерТекущегоУстройства = ПараметрыПодключения.ИДУстройства;
			//ОбъектДрайвера.УстройствоВключено = 0;
			//ОбъектДрайвера.УдалитьУстройство();
			return null;
		}
		// Функция получает, обрабатывает и перенаправляет на исполнение команду к драйверу
		//

		public object ВыполнитьКоманду(/*Команда, ВходныеПараметры = Неопределено, ВыходныеПараметры = Неопределено,
                         ОбъектДрайвера, Параметры, ПараметрыПодключения*/)
		{
			//Результат = Истина;
			//ВыходныеПараметры = Новый Массив();
			/*// Вывод строк на дисплей
*/
			if(true/*Команда = "ВывестиСтрокуНаДисплейПокупателя" ИЛИ Команда = "DisplayText"*/)
			{
				//СтрокаТекста = ВходныеПараметры[0];
				//Результат = ВывестиТекст(ОбъектДрайвера, Параметры, ПараметрыПодключения, СтрокаТекста, ВыходныеПараметры);
				/*// Очистка дисплея
*/
			}
			return null;
		}
		///////////////////////////////////////////////////////////////////////////////
		// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
		// Функция осуществляет вывод списка строк на дисплей покупателя.
		//

		public object ВывестиТекст(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, СтрокаТекста, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			//ОбъектДрайвера.НомерТекущегоУстройства = ПараметрыПодключения.ИДУстройства;
			//КолвоСтолбцов	 = ОбъектДрайвера.КолвоСтолбцовДисплея;
			/*СтрокаТекстаВрем = ПостроитьПоле(СтрПолучитьСтроку(СтрокаТекста, 1), КолвоСтолбцов)
					 + ПостроитьПоле(СтрПолучитьСтроку(СтрокаТекста, 2), КолвоСтолбцов);*/
			//Результат = (ОбъектДрайвера.ПоказатьТекст(СтрокаТекстаВрем, 0) = 0);
			if(true/*Не Результат*/)
			{
				//ВыходныеПараметры.Добавить(999);
				//ВыходныеПараметры.Добавить(ОбъектДрайвера.ОписаниеРезультата);
			}
			return null;
		}
		// Функция осуществляет очистку дисплея покупателя.
		//

		public object ОчиститьТекст(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			//ОбъектДрайвера.НомерТекущегоУстройства = ПараметрыПодключения.ИДУстройства;
			//ОбъектДрайвера.Очистить();
			return null;
		}
		// Функция возвращает параметры вывода на дисплей покупателя)

		public object ПолучитьПараметрыВывода(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			//ВыходныеПараметры.Очистить();
			if(true/*Параметры.РазмерДисплея = 0*/)
			{
				//ВыходныеПараметры.Добавить(20);
				//ВыходныеПараметры.Добавить(2);
			}
			return null;
		}
		// Функция осуществляет тестирование устройства.
		//

		public object ТестУстройства(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			//Результат = ПодключитьУстройство(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры);
			if(true/*Не Результат*/)
			{
				//ВыходныеПараметры.Добавить(999);
				//ВыходныеПараметры.Добавить(НСтр("ru='Ошибка при подключении устройства'"));
			}
			//ОтключитьУстройство(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры);
			return null;
		}
		// Функция возвращает версию установленного драйвера
		//

		public object ПолучитьВерсиюДрайвера(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			//ВыходныеПараметры.Добавить(НСтр("ru='Установлен'"));
			//ВыходныеПараметры.Добавить(НСтр("ru='Не определена'"));
			return null;
		}
		// Процедура формирует задержку указанной длительности
		//
		// Параметры:
		//  Время - <Число>
		//        - Длительность задержки в секундах.
		//

		public void Пауза(/*Время*/)
		{
			//ВремяЗавершения = ТекущаяДата() + Время;
			while(true/*ТекущаяДата() < ВремяЗавершения*/)
			{
			}
			//;;
		}
		// Возвращает по наименованию модели код протокола устройства
		//

		public object ПолучитьКодПротокола(/*Модель*/)
		{
			//КодПротокола = 0;
			//Протоколы = Новый Соответствие;
			//Протоколы["Datecs DPD-201"]          = 0;
			//Протоколы["EPSON-совместимый"]       = 1;
			//Протоколы["Меркурий ДП-01"]          = 2;
			//Протоколы["Меркурий ДП-02"]          = 3;
			//Протоколы["Меркурий ДП-03"]          = 4;
			//Протоколы["Flytech"]                 = 5;
			//Протоколы["GIGATEK DSP800"]          = 6;
			//Протоколы["GIGATEK DSP850A"]         = 6;
			//Протоколы["Штрих-FrontMaster"]       = 7;
			//Протоколы["EPSON-совместимый (USA)"] = 8;
			//Протоколы["Posiflex PD2300 USB"]     = 9;
			//Протоколы["IPC"]                     = 10;
			//Протоколы["GIGATEK DSP820"]          = 11;
			//Протоколы["TEC LIUST-51"]            = 12;
			//Протоколы["Демо-дисплей"]            = 255;
			return null;
		}
		// Обрезает передаваемую строку по длине поля. если поле слишком короткое - дополняет пробелами

		public object ПостроитьПоле(/*Текст, ДлинаПоля*/)
		{
			if(true/*СтрДлина(Текст) < ДлинаПоля*/)
			{
				//ТекстПолный = Текст;
				//КолвоПробелов = ДлинаПоля - СтрДлина(ТекстПолный);
			}
			return null;
		}
	}
}
